﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿﻿using jiuyuan.数据.基础数据类;
using jiuyuan.管理器;

namespace jiuyuan.数据.怪物类;

public class 怪物 : 战斗单位
{
    public int 等级 { get; set; }
    public List<掉落物品> 掉落列表 { get; set; } = [];
    public string 怪物职业 { get; set; } = string.Empty;
    public string AI行为类型 { get; set; } = string.Empty; // 用于AI决策
}

// 掉落物品配置
public class 掉落物品
{
    // 添加无参构造函数供EF Core使用
    public 掉落物品() { }
    
    public Guid 物品ID { get; set; } = Guid.CreateVersion7();
    public float 掉落概率 { get; set; }
    public int 最小数量 { get; set; } = 1;
    public int 最大数量 { get; set; } = 1;
    public 游戏元素? 物品详情 { get; set; }
    
    public 掉落物品(游戏元素 物品, float 概率 = 1.0f, int 最小数量 = 1, int 最大数量 = 1) : this()
    {
        物品ID = 物品.Id;
        物品详情 = 物品;
        掉落概率 = 概率;
        this.最小数量 = 最小数量;
        this.最大数量 = 最大数量;
    }
    
    // 添加复制构造函数，用于避免引用问题
    public 掉落物品(掉落物品 other) : this()
    {
        物品ID = other.物品ID;
        掉落概率 = other.掉落概率;
        最小数量 = other.最小数量;
        最大数量 = other.最大数量;
        物品详情 = other.物品详情;
    }
}